#pragma once
#include <iostream>

enum Status
{
    Swin,
    Ewin,
    Dfs_incomplete,
    Dfs_complete
};

enum Signal
{
    To_swin,
    To_ewin,
    Pending,
    Unsat
};

Signal getSignal_By_NextStatus(Status status);

inline Signal getSignal_By_NextStatus(Status status)
{
    switch (status)
    {
    case Swin:
        return Signal::To_swin;
    case Ewin:
        return Signal::To_ewin;
    case Dfs_complete:
        return Signal::Pending;
    case Dfs_incomplete:
        return Signal::Pending;
    default:
        std::cerr << "Error: getSignal_By_NextStatus: invalid status\n";
        exit(1);
    }
}